package br.com.news.web.session;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.SessionScoped;

import org.springframework.stereotype.Component;

import br.com.news.utils.database.beans.CategoriaUsuarioBean;
import br.com.news.utils.database.beans.UsuarioBean;
import br.com.news.utils.database.beans.enums.Perfil;

/**
 * Classe para guardar o usuario logado
 * 
 * @author Jefferson
 * @since 25/04/2013
 */
@Component("userSession")
@SessionScoped
public class UserSession implements Serializable{
	
	private static final long serialVersionUID = 1381756052029831437L;
	
	private UsuarioBean usuarioBean;
	private List<CategoriaUsuarioBean> categoriasUsuario;

	public boolean isLogged() {
		return usuarioBean != null;
	}
	
	public boolean isAdministrador() {
		return usuarioBean != null && usuarioBean.getPerfil().equals(Perfil.ADMINISTRADOR);
	}

	public void logout() {
		usuarioBean = null;
	}

	public UsuarioBean getUsuarioBean() {
		return usuarioBean;
	}

	public void setUsuarioBean(UsuarioBean usuarioBean) {
		this.usuarioBean = usuarioBean;
	}

	public Perfil perfil() {
		return usuarioBean.getPerfil();
	}

	public List<CategoriaUsuarioBean> getCategoriasUsuario() {
		return categoriasUsuario;
	}

	public void setCategoriasUsuario(List<CategoriaUsuarioBean> categoriasUsuario) {
		this.categoriasUsuario = categoriasUsuario;
	}
}
